Click Here!
home account info subscribe login search My ITKnowledge FAQ/help site map contact us


 
Brief Full
 Advanced
      Search
 Search Tips
To access the contents, click the chapter and section titles.

Oracle Performance Tuning and Optimization
(Publisher: Macmillan Computer Publishing)
Author(s): Edward Whalen
ISBN: 067230886x
Publication Date: 04/01/96

Bookmark It

Search this book:
 
Previous Table of Contents Next


UNIX

The UNIX operating system has been around since 1969. It predates NetWare, Windows NT, and OS/2 by many years. The UNIX operating system is different from NetWare, Windows NT, and OS/2 in that it was not designed as a client/server operating system. That is not to say that UNIX is not now used as a network server, but that network service was not the original intent of the operating system.

Even though UNIX is fairly standard, there has been a divergence in UNIX over the years. Because almost every major computer company has a version of UNIX that they develop and sell, there are differences in the UNIX offerings from the different vendors.

In the PC server market, there are three main UNIX versions: SCO UNIX, SCO UnixWare, and Solaris from SunSoft. IBM calls their UNIX offering AIX. HP has a UNIX operating system called HP-UX; AT&T Global Information Solutions simply calls their product UNIX System V. SunSoft produces versions of UNIX for both Intel and Sun SPARC processors; their products are called Solaris and Solaris X86.

Over the years, UNIX has evolved. Currently, most vendors (with the exception of SCO) base their versions of UNIX on one common core: UNIX System V Release 4, which is sometimes referred to as UNIX SVR4.

In many cases, applications are binarily compatible between OSes on the same platform. But it is not uncommon for the vendor to put special enhancements into the operating system for performance. Oracle always takes advantage of OS-specific features, even though it would be simpler to ship just one binary.

Architectural Overview

The UNIX operating system consists of a core piece called the kernel surrounded by applications and tools. The kernel contains all hardware support, device drivers, scheduling routines, and the network stack. Unlike the microkernel architecture used in Windows NT, the UNIX kernel contains all the core OS functionality.

UNIX is a virtual memory operating system but is very configurable. In the UNIX OS, not all memory is allocated and used in the same manner. Shared memory used for the Oracle SGA is treated differently from normal memory. Shared memory is allocated at boot time and is not available to general user processes. Shared memory must be allocated through shared memory system calls in the operating system.

The fact that shared memory is treated differently allows certain functions to occur. Some varieties of UNIX allow you to allocate shared memory using a 4M memory page size. This arrangement cuts down on page entries that must be maintained by the operating system and guarantees larger chunks of contiguous memory. Shared memory is also unique in that it is non-pageable. This means that if you have enough shared memory to create the SGA at instance startup, you don’t ever have to worry about the SGA being paged out.

Over the years, other features that have been added to the UNIX operating system to improve database performance include real-time processing, high-speed semaphores, and Asynchronous I/O. Not all these features are in every implementation of UNIX. Check with your particular OS vendor to see what is available for your environment.

Tuning Considerations

As is true for all the operating systems described in this chapter, the most important tuning consideration is ensuring that sufficient memory is available to run Oracle and the required number of server processes. Because UNIX is a virtual memory operating system, you can always start more server processes, but if you are not careful, you may begin paging.

Many varieties of UNIX have extended features such as the post-wait semaphore and Asynchronous I/O available to enhance Oracle performance. Other areas of importance in tuning the UNIX system include both the network and I/O subsystem.

Memory

Memory is very important in the UNIX operating system. As you have seen in earlier chapters, the way to increase performance is to maximize the use of the SGA to avoid costly disk I/Os. In UNIX as in all OSes, it is important to avoid paging. Because the SGA is in shared memory in UNIX, the SGA is guaranteed not to page—but the server processes can page if too much memory is being used.

It is important to allocate enough shared memory to accommodate the SGA. If you do not have enough memory to create the SGA, the instance does not start. If this happens, you must either configure the OS to allow more shared memory or reduce the size of the SGA. If you are using enhanced 4M shared memory pages, you can allocate the amount of shared memory only in 4M units.

Be careful that you do not allocate so much shared memory for the SGA that user processes and server processes page. Be sure to monitor the system periodically to make sure that no paging is occurring. To maximize memory used by the SGA, reduce all unnecessary memory used by the operating system and limit the amount of memory that can be allocated by users.


Previous Table of Contents Next


Products |  Contact Us |  About Us |  Privacy  |  Ad Info  |  Home

Use of this site is subject to certain Terms & Conditions, Copyright © 1996-2000 EarthWeb Inc.
All rights reserved. Reproduction whole or in part in any form or medium without express written permission of EarthWeb is prohibited.